iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0
佛心分享-IT 人自學之術

韌體小白之路系列 第 1

[Day01] 韌體小白之路_起點

  • 分享至 

  • xImage
  •  

雖然有在玩Arduino跟ESP32,但是這些工具大都做好給我們直接使用,所以想挑戰一個難一點的MCU(STM32系列)作為入門RTOS跟更深刻了解MCU相關通訊協定的起始點,畢竟是邊看線上課程邊寫筆記的,大綱應該就是課程給定的,整理跟未來回看也比較記得~
畢竟是最後一天才報名(前面跑去刷題了XD),那今天就開始寫吧~

RTOS_Real Time OS

什麼是Real Time?

Real Time 並不是代表完成該任務的速度有多快,而是保證在給定的時間內,一定會完成任務(聽起來就是個超優秀的員工XD)
以下為Real Time system的英文定義:

A real time system is one in which the correctness of computations not only depends upon the logical correctness of the computation, but also upon the time at which the result is produced. if the timing constraints are not met, system failure is said to have occured.

Real Time有分為Soft Real Time 跟 Hard Real Time:

  • Soft Real Time可以接受些微的誤差(大概在ms/s以內),像是看影片的時候,影片的延遲頂多造成失幀,影響用戶體驗,但是不會造成系統崩潰
  • Hard Real Time 則是一定要在該時間內完成,不然就算失敗,像是工業安全控制系統等,一定要在限時內完成任務,不然會造成生命或是財產安全

什麼是Real Time OS?

RTOS是一種專門設計來運行具有精確時間要求和高度可靠性的應用程式的作業系統,它的設計目標是保證每個關鍵任務能在指定的時間範圍內完成,並提供對系統事件的快速回應
特徵:

  • 精確的時間控制,保證每個關鍵操作在規定的時間內完成。這些操作包括:
    1. 中斷處理與系統例外的處理
    2. 關鍵區域的處理(即避免多任務系統中資源衝突的部分)
    3. 調度機制的管理(即決定任務執行順序的算法)
  • 高可靠性
  • 即時性與優先權機制: RTOS 通常使用優先權機制,確保高優先級的任務能夠立即執行,並在必要時中斷低優先級任務,這樣的機制使 RTOS 能夠迅速處理緊急事件,並確保系統的即時性。

RTOS vs GPOS

GPOS(General-Purpose Operating System),就是我們一定常用的作業系統(Linux、Windows)

特性 RTOS GPOS
Task Scheduling 優先權調度,搶佔式 時間片輪轉,多級隊列
Latency 低延遲,可預測 高延遲,不可預測
Priority Inversion處理 優先權繼承協議處理 通常不處理
Throughput 低吞吐量,專注即時性 高吞吐量,專注資源利用率

p.s 在Throughput上,雖然RTOS表現通常較GPOS差,,因為RTOS專注在完成優先級較高的任務,而非最大化Throughput,但這不太代表RTOS在Throughput的表現差勁,因為通常RTOS的任務數量較少,而GPOS的任務數量較多且繁雜,所以比較準確地來說,RTOS仍可以提供不錯的總體Throughput,但會因為即時性犧牲Throughput就是了~

優先權反轉Priority Inversion:
是一種在多個程式任務執行時發生的現象,當高優先級的任務被迫等待低優先級的任務完成,導致高優先級的任務延遲,發生的流程:

  1. 關鍵資源共享: 一開始低優先級任務佔用了共享的資源(ex. critical section),並且中等優先級的任務已經占滿了CPU(代表低優先級任務無法釋放共享資源,因為CPU還沒輪到它)
  2. 產生的高優先級任務,但因為低優先級任務無法釋放共享資源,所以造成高優先級任務要等待低優先級或是中優先級任務完成才能輪到它,造成高優先級任務的延遲-> 這在Real Time的機制下是不可接受的!
    解法: 優先權繼承協議
    即當高優先級任務等待低優先級任務釋放資源時,系統臨時將低優先級任務提升至與高優先級任務相同的優先級,這樣可以避免中等優先級任務插入並導致進一步延遲

下一篇
[Day02] 韌體小白之路_應用環境安裝
系列文
韌體小白之路7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言